package com.Lgwd.controller.combatController;


import com.Lgwd.dao.CombatInfoDao;
import com.Lgwd.entity.MonsterEntiy;
import com.Lgwd.entity.UserEntiy;
import com.Lgwd.repository.UserRepository;
import com.Lgwd.utils.RandomUtils;
import com.Lgwd.utils.ResponseData;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RestController;

/**
 * 与怪物战斗的页面数据
 */
@Slf4j
@RestController
public class CombatInteface {


    /**
     * 角色计算伤害方式
     *
     * @param monsterDF    怪物防御
     * @param UserAorM     角色最小攻击/魔法攻击力
     * @param UserProperty 角色最大攻击
     * @return 最小攻击~最大攻击中的随机数  减去  怪物防御 * （怪物防御*0.001）
     */
    public static Integer userShuChu(Integer monsterDF, Integer UserAorM, Integer UserProperty) {

        double relust = RandomUtils.getRangeStr(UserAorM, UserProperty) - (monsterDF * (monsterDF * 0.001));

        return (int) relust;
    }


    /**
     * @param userDF      角色防御力
     * @param monsterA    怪物最小攻击
     * @param monsterAMax 怪物最大攻击
     * @return 最小攻击~最大攻击中的随机数  减去  角色防御 * （角色防御*0.001）
     */
    public static Integer MonsterShuChu(Integer userDF, Integer monsterA, Integer monsterAMax) {

        double relust = RandomUtils.getRangeStr(monsterA, monsterAMax) - (userDF * (userDF * 0.001));

        return (int) relust;
    }



    static CombatInfoDao CombatInfo(UserEntiy userEntiy, MonsterEntiy monsterEntiy) {
        //创建返回的信息
        CombatInfoDao combatInfoDao = new CombatInfoDao();
        int userSh= userShuChu(monsterEntiy.getMonster_DF(),userEntiy.getUser_A(),userEntiy.getUser_property());
        int monsterSh= MonsterShuChu(userEntiy.getUser_DF(),monsterEntiy.getMonster_A(),monsterEntiy.getMonster_property());

        combatInfoDao.setUserMp(userEntiy.getUser_MP());
        combatInfoDao.setUserHp(userEntiy.getUser_HP()-monsterSh);
        combatInfoDao.setMonsterHp(monsterEntiy.getMonster_HP()-userSh);
        combatInfoDao.setMonsterLog("怪物对您造成了"+monsterSh+"点伤害！");
        combatInfoDao.setUserLog("您对怪物造成了"+userSh+"点伤害！");
        combatInfoDao.setMonsterLv(monsterEntiy.getMonster_lv());


        userEntiy.setUser_HP(userEntiy.getUser_HP()-monsterSh);
        monsterEntiy.setMonster_HP(monsterEntiy.getMonster_HP()-userSh);

        return combatInfoDao;
    }




}
